/*
 Trabajo Practico 3 Ejercicio 2
 * Archivo defines
 Entrega número: 1

 - Integrantes:
		- Barrera, Lourdes				DNI: 33306634
		- Martinez, Guillermo			DNI: 34510461
		- Reyes, Leandro				DNI: 34213699
		- Rodriguez, Lucas				DNI: 34265017
*/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/shm.h>
#include <semaphore.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sched.h>
#include <signal.h>

#define BUFFER 512
#define CANT_MONEDAS 5

// Para generar semáforos
char atencion[]= "/ate";
char mensaje[] = "/msj";
char memoria[] = "/mem";
char respues[] = "/rta";
char inicio[]  = "/ini";

// Funcion error
void error(char*);

// Funciones semáforos
void P(sem_t*);
void V(sem_t*);

// Totales de cada moneda en cada sucursal
typedef struct
{ 
	int sucursal;
	int total;
	float prom_cotiz; 
	int cant_op; 
	int ult_cotiz; 
	int total_pesos; 
}t_moneda_sucursal;

// Total de una moneda de todas las sucursales
typedef t_moneda_sucursal total_mon_todas_suc[5];

void error(char *e)
{
	printf("%s\n",e);
	exit(1);
}

///////// Semáforos /////////
// Funcion P()
void P(sem_t* sem)
{
	if(sem_wait(sem) == -1)
	{
		perror("Semáforo no válido");
		exit(1);
	}
}

// Funcion V()
void V(sem_t* sem)
{
	if(sem_post(sem) == -1)
	{
		perror("Semáforo no válido");
		exit(1);
	}
}
